import Cookies from 'js-cookie'
const app = {
   state: {
       sidebar:{
           opened:!+Cookies.get('sidebarStatus')
       },
       language:Cookies.get('language') || 'zh'
   },
   //只能同步操作
   mutations:{
    TOGGLE_SIDEBAR: state=>{
        if(state.sidebar.opened){
            Cookies.set('sidebarStatus',1)
        }else{
            Cookies.set('sidebarStatus',0)
        }
        state.sidebar.opened = !state.sidebar.opened
    },
    SET_LANGUAGE: (state,language)=>{//第二个参数是payload，commit时额外传递的参数
        state.language = language;
        Cookies.set('language',language);
    }
   },
    // Action 类似于 mutation，不同在于：
    // Action 提交的是 mutation，而不是直接变更状态。
    // Action 可以包含任意异步操作。访问网络数据
   actions:{
        toggleSidebar({commit}){
            commit('TOGGLE_SIDEBAR');
        },
        //context和store拥有相同的属性和方法
        setlanguage(context,language){
            context.commit('SET_LANGUAGE',language);
        }
   }
}
export default app;
//操作view,触发dispatch('action'，payload)，在action里可以异步获取网络数据，然后commit('mutation',payload)，
//在mutaition里更改状态，state的改变驱动界面改变